package com.grad.webstudy.vo;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.Date;

/**
 * @Description:
 * @Author: zjf
 * @Date: 2020/2/5 15:41.
 */
public class ApplyVo {

    private Integer id;

    private String userName;

    @JsonFormat( pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date time;

    @JsonFormat( pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date dealTime;

    private String result;

    private Integer status;

    private String statusMsg;

    private String objType;

    private Integer objTypeCode;

    private Integer objId;

    private String applyDesc;

    private String className;

    public ApplyVo(Builder builder) {

        this.id = builder.id;
        this.userName = builder.userName;
        this.time = builder.time;
        this.dealTime = builder.dealTime;
        this.result = builder.result;
        this.status = builder.status;
        this.statusMsg = builder.statusMsg;
        this.objType = builder.objType;
        this.objTypeCode = builder.objTypeCode;
        this.objId = builder.objId;
        this.applyDesc = builder.applyDesc;
        this.className = builder.className;
    }


    public ApplyVo() {
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public Date getDealTime() {
        return dealTime;
    }

    public void setDealTime(Date dealTime) {
        this.dealTime = dealTime;
    }

    public Integer getObjTypeCode() {
        return objTypeCode;
    }

    public void setObjTypeCode(Integer objTypeCode) {
        this.objTypeCode = objTypeCode;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Date getTime() {
        return time;
    }

    public void setTime(Date time) {
        this.time = time;
    }

    public String getResult() {
        return result;
    }

    public void setResult(String result) {
        this.result = result;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getStatusMsg() {
        return statusMsg;
    }

    public void setStatusMsg(String statusMsg) {
        this.statusMsg = statusMsg;
    }

    public String getObjType() {
        return objType;
    }

    public void setObjType(String objType) {
        this.objType = objType;
    }

    public Integer getObjId() {
        return objId;
    }

    public void setObjId(Integer objId) {
        this.objId = objId;
    }

    public String getApplyDesc() {
        return applyDesc;
    }

    public void setApplyDesc(String applyDesc) {
        this.applyDesc = applyDesc;
    }

    public static class Builder{
        private Integer id;

        private String userName;

        @JsonFormat( pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date time;

        @JsonFormat( pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date dealTime;

        private String result;

        private Integer status;

        private String statusMsg;

        private String objType;

        private Integer objTypeCode;

        private Integer objId;

        private String applyDesc;

        private String className;

        public Builder setClassName(String className) {
            this.className = className;
            return this;
        }

        public Builder setDealTime(Date dealTime) {
            this.dealTime = dealTime;
            return this;
        }

        public Builder setObjTypeCode(Integer objTypeCode) {
            this.objTypeCode = objTypeCode;
            return this;
        }

        public Builder setId(Integer id) {
            this.id = id;
            return this;
        }

        public Builder setUserName(String userName) {
            this.userName = userName;
            return this;
        }

        public Builder setTime(Date time) {
            this.time = time;
            return this;
        }

        public Builder setResult(String result) {
            this.result = result;
            return this;
        }

        public Builder setStatus(Integer status) {
            this.status = status;
            return this;
        }

        public Builder setStatusMsg(String statusMsg) {
            this.statusMsg = statusMsg;
            return this;
        }

        public Builder setObjType(String objType) {
            this.objType = objType;
            return this;
        }

        public Builder setObjId(Integer objId) {
            this.objId = objId;
            return this;
        }

        public Builder setApplyDesc(String applyDesc) {
            this.applyDesc = applyDesc;
            return this;
        }

        public ApplyVo build(){
            return new ApplyVo(this);
        }
    }
}
